package pck_utilitarios;

import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Map;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import pck_pojos.Cls_Encargatura_Permiso;
import pck_pojos.Cls_Profesion;
import pck_pojos.Cls_TipoPermiso;
import pck_pojos.Cls_Trabajador;
import pck_pojos.Cls_Unidad_Organizativa;

/**
 *
 * @author Christian
 */
public class Cls_InvocaWebService {

//   private final static String IP_WEBSERVICE = "http://190.223.56.53:8080/";

   private final static String IP_WEBSERVICE =obtenerIpWebService() ;

    private static String obtenerIpWebService() {
        String server_Ip;
        String server_Port;
        String ip_WebService;

        Properties Propiedades = new Properties();
        try {
            Propiedades.load(new FileInputStream("propiedades.properties"));
        } catch (Exception exception) {
            exception.printStackTrace();
        }

        server_Ip = Propiedades.getProperty("SERVER_IP");
        server_Port = Propiedades.getProperty("SERVER_PORT");
        ip_WebService = "http://" + server_Ip + ":" + server_Port + "/";
        return ip_WebService;

    }
    //funciones para las tablas

    public static ArrayList<Cls_Profesion> obtenerTodasProfesiones(Map<String, String> map) {
        ArrayList<Cls_Profesion> array_profesion = new ArrayList<Cls_Profesion>();
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/2/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE) + "-1-50";
        //DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        for (int i = 0; i < listaNodosHijo.getLength(); i++) {
            Node unNodo = listaNodosHijo.item(i);
            NodeList ndo_profesion = unNodo.getChildNodes();
            array_profesion.add(new Cls_Profesion(ndo_profesion.item(1).getFirstChild().getNodeValue(),
                    ndo_profesion.item(2).getFirstChild().getNodeValue(),
                    ndo_profesion.item(0).getFirstChild().getNodeValue()));
        }
        return array_profesion;
    }

    public static ArrayList<Cls_TipoPermiso> obtenerTodosPermisos(Map<String, String> map) {
        ArrayList<Cls_TipoPermiso> array_permiso = new ArrayList<Cls_TipoPermiso>();
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/10/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        for (int i = 0; i < listaNodosHijo.getLength(); i++) {
            Node unNodo = listaNodosHijo.item(i);
            NodeList ndo_permiso = unNodo.getChildNodes();
            array_permiso.add(new Cls_TipoPermiso(ndo_permiso.item(1).getFirstChild().getNodeValue(),
                    ndo_permiso.item(0).getFirstChild().getNodeValue()));
        }
        return array_permiso;
    }

    public static Object asignarEncargadoHistorial(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/11/" + map.get(Cls_Parametros.Map_ID_PERMISO) + "-"
                + map.get(Cls_Parametros.Map_CODIGO_UNI_ORGA) + "-" + map.get(Cls_Parametros.Map_DNI_ENCARGAD) + "-" + map.get(Cls_Parametros.Map_DNI_RESPONSABLE) + "-"
                + map.get(Cls_Parametros.Map_FECHA_INICIO) + "-" + map.get(Cls_Parametros.Map_FECHA_FIN) + "-" + map.get(Cls_Parametros.Map_ESTADO);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object modificarPermiso(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/12/" + map.get(Cls_Parametros.Map_ID_PERMISO) + "-"
                + map.get(Cls_Parametros.Map_DESCRIPCION_PERMISO);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object nuevoPermiso(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/13/" + map.get(Cls_Parametros.Map_DESCRIPCION_PERMISO);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object eliminarPermiso(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/16/" + map.get(Cls_Parametros.Map_ID_PERMISO);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object nuevaProfesion(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/1/" + map.get(Cls_Parametros.Map_PROFESION) + "-"
                + map.get(Cls_Parametros.Map_ABREVIATURA);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object modificarProfesion(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/3/" + map.get(Cls_Parametros.Map_CODIGO_PROFESION) + "-"
                + map.get(Cls_Parametros.Map_PROFESION) + "-"
                + map.get(Cls_Parametros.Map_ABREVIATURA);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static ArrayList<Cls_Trabajador> obtenerTodosTrabajadores(Map<String, String> map) {
        ArrayList<Cls_Trabajador> array_trabajador = new ArrayList<Cls_Trabajador>();
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Trabajador/5/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE) + "-1-650";
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        for (int i = 0; i < listaNodosHijo.getLength(); i++) {
            Node unNodo = listaNodosHijo.item(i);
            NodeList ndo_trabajador = unNodo.getChildNodes();
            array_trabajador.add(new Cls_Trabajador(ndo_trabajador.item(4).getFirstChild().getNodeValue(),
                    ndo_trabajador.item(2).getFirstChild().getNodeValue(),
                    ndo_trabajador.item(1).getFirstChild().getNodeValue(), ""));
        }
        return array_trabajador;
    }
    //llama al servicio ValidarLogin

    public static Cls_Trabajador obtenerDatosTrabajador(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Trabajador/1/" + map.get(Cls_Parametros.Map_DNI);

        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        NodeList ndo_usuario = listaNodosHijo.item(0).getChildNodes();
        Cls_Trabajador usuario = new Cls_Trabajador();
        usuario.setArea(ndo_usuario.item(0).getFirstChild().getNodeValue());
        usuario.setCargo(ndo_usuario.item(1).getFirstChild().getNodeValue());
        usuario.setCodigo(ndo_usuario.item(2).getFirstChild().getNodeValue());
        usuario.setCodigo_area(ndo_usuario.item(3).getFirstChild().getNodeValue());
        usuario.setCod_area_pertenece(ndo_usuario.item(4).getFirstChild().getNodeValue());
        usuario.setCod_directiva_pertenece(ndo_usuario.item(5).getFirstChild().getNodeValue());
        usuario.setCodigo_visto_bueno(ndo_usuario.item(6).getFirstChild().getNodeValue());
        usuario.setCorreo(ndo_usuario.item(7).getFirstChild().getNodeValue());
        usuario.setDni_jefe(ndo_usuario.item(8).getFirstChild().getNodeValue());
        usuario.setNombres(ndo_usuario.item(10).getFirstChild().getNodeValue());
        usuario.setProfesion(ndo_usuario.item(11).getFirstChild().getNodeValue());
        usuario.setTipo_usuario_area(Integer.parseInt(ndo_usuario.item(12).getFirstChild().getNodeValue()));
        return usuario;
    }

    public static Cls_Trabajador obtenerDatosTrabajadorConVacaciones(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Trabajador/10/" + map.get(Cls_Parametros.Map_DNI);

        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        NodeList ndo_usuario = listaNodosHijo.item(0).getChildNodes();
        Cls_Trabajador usuario = new Cls_Trabajador();
        usuario.setArea(ndo_usuario.item(0).getFirstChild().getNodeValue());
        usuario.setCargo(ndo_usuario.item(1).getFirstChild().getNodeValue());
        usuario.setCodigo(ndo_usuario.item(2).getFirstChild().getNodeValue());
        usuario.setCodigo_area(ndo_usuario.item(3).getFirstChild().getNodeValue());
        usuario.setCod_area_pertenece(ndo_usuario.item(4).getFirstChild().getNodeValue());
        usuario.setCod_directiva_pertenece(ndo_usuario.item(5).getFirstChild().getNodeValue());
        usuario.setCodigo_visto_bueno(ndo_usuario.item(6).getFirstChild().getNodeValue());
        usuario.setCorreo(ndo_usuario.item(7).getFirstChild().getNodeValue());
        usuario.setDni_jefe(ndo_usuario.item(8).getFirstChild().getNodeValue());
        usuario.setEsta_vacaciones(Boolean.parseBoolean(ndo_usuario.item(9).getFirstChild().getNodeValue()));
        usuario.setNombres(ndo_usuario.item(10).getFirstChild().getNodeValue());
        usuario.setProfesion(ndo_usuario.item(11).getFirstChild().getNodeValue());
        usuario.setTipo_usuario_area(Integer.parseInt(ndo_usuario.item(12).getFirstChild().getNodeValue()));
        return usuario;
    }

    public static Object asignarProfesionTrabajador(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/5/" + map.get(Cls_Parametros.Map_DNI) + "-"
                + map.get(Cls_Parametros.Map_CODIGO_PROFESION);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object darVacacionesTrabajador(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/6/" + map.get(Cls_Parametros.Map_DNI);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Object quitarVacacionesTrabajador(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/7/" + map.get(Cls_Parametros.Map_DNI);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }
    
    public static Integer obtenerCantidadDeTrabajadores(Map<String, String> map){
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Trabajador/3/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE) + "-";
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList nodesDatos = nodoRaiz.getChildNodes();
        String value =  nodesDatos.item(0).getFirstChild().getNodeValue();
        return Integer.parseInt(value);
    }

    public static ArrayList<Cls_Trabajador> obtenerTodosTrabajadoresVacaciones(Map<String, String> map) {
        ArrayList<Cls_Trabajador> array_trabajador = new ArrayList<Cls_Trabajador>();
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Trabajador/5/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE) + "-" +
                            map.get(Cls_Parametros.Map_PAGE)+"-"+
                            map.get(Cls_Parametros.Map_PAGE_TAMANIO) + "-Vacaciones";
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        for (int i = 0; i < listaNodosHijo.getLength(); i++) {
            Node unNodo = listaNodosHijo.item(i);
            NodeList ndo_trabajador = unNodo.getChildNodes();
            array_trabajador.add(new Cls_Trabajador(ndo_trabajador.item(5).getFirstChild().getNodeValue(),
                    ndo_trabajador.item(2).getFirstChild().getNodeValue(),
                    ndo_trabajador.item(1).getFirstChild().getNodeValue(), ""));
        }
        return array_trabajador;
    }

    public static ArrayList<Cls_Unidad_Organizativa> obtenerTodasUnidadesOrganicasGenerales(Map<String, String> map) {
        ArrayList<Cls_Unidad_Organizativa> array_unidades = new ArrayList<Cls_Unidad_Organizativa>();
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/UnidadOrganica/3/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE) + "-1-100";
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        for (int i = 0; i < listaNodosHijo.getLength(); i++) {
            Node unNodo = listaNodosHijo.item(i);
            NodeList ndo_trabajador = unNodo.getChildNodes();
            array_unidades.add(new Cls_Unidad_Organizativa(ndo_trabajador.item(2).getFirstChild().getNodeValue(),
                    ndo_trabajador.item(8).getFirstChild().getNodeValue()));
        }
        return array_unidades;
    }

    public static Cls_Unidad_Organizativa obtenerUnidadOrganica(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/UnidadOrganica/5/" + map.get(Cls_Parametros.Map_CODIGO_UNIDAD_ORGANICA);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        NodeList ndo_usuario = listaNodosHijo.item(0).getChildNodes();
        Cls_Unidad_Organizativa unidad = new Cls_Unidad_Organizativa();
        unidad.setCodig_directiva(ndo_usuario.item(1).getFirstChild().getNodeValue());
        unidad.setCodigo_area(ndo_usuario.item(2).getFirstChild().getNodeValue());
        unidad.setCorreo_electronico(ndo_usuario.item(3).getFirstChild().getNodeValue());
        unidad.setJefe(ndo_usuario.item(4).getFirstChild().getNodeValue());
        unidad.setJefe_cargo(ndo_usuario.item(5).getFirstChild().getNodeValue());
        unidad.setJefe_dni(ndo_usuario.item(6).getFirstChild().getNodeValue());
        unidad.setNivel(ndo_usuario.item(7).getFirstChild().getNodeValue());
        unidad.setNombre(ndo_usuario.item(8).getFirstChild().getNodeValue());
        return unidad;
    }

    public static Object actualizarUnidadOrganizativa(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/UnidadOrganica/7/" + map.get(Cls_Parametros.Map_CODIGO_UNIDAD_ORGANICA)
                + "-" + map.get(Cls_Parametros.Map_CORREO)
                + "-" + map.get(Cls_Parametros.Map_CODIGO_DIRECTIVA)
                + "-" + map.get(Cls_Parametros.Map_CARGO)
                + "-" + map.get(Cls_Parametros.Map_DNI);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    public static Cls_Unidad_Organizativa obtenerUnidadConResponsable(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/UnidadOrganica/6/" + map.get(Cls_Parametros.Map_CODIGO_UNIDAD_ORGANICA);
       try{
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        NodeList ndo_usuario = listaNodosHijo.item(0).getChildNodes();
        Cls_Unidad_Organizativa unidad = new Cls_Unidad_Organizativa();
        unidad.setCodig_directiva(ndo_usuario.item(0).getFirstChild().getNodeValue());
        unidad.setCodigo_area(ndo_usuario.item(1).getFirstChild().getNodeValue());
        unidad.setEncargado(ndo_usuario.item(2).getFirstChild().getNodeValue());
        unidad.setEncargado_cargo(ndo_usuario.item(3).getFirstChild().getNodeValue());
        unidad.setEncargado_dni(ndo_usuario.item(4).getFirstChild().getNodeValue());
        unidad.setEsta_vacaciones(Integer.parseInt(ndo_usuario.item(5).getFirstChild().getNodeValue()));
        unidad.setJefe(ndo_usuario.item(6).getFirstChild().getNodeValue());
      //  System.out.println(ndo_usuario.item(6).getFirstChild().getNodeValue());
        unidad.setJefe_cargo(ndo_usuario.item(7).getFirstChild().getNodeValue());
        unidad.setJefe_dni(ndo_usuario.item(8).getFirstChild().getNodeValue());
        unidad.setNombre(ndo_usuario.item(9).getFirstChild().getNodeValue());
        return unidad;
        }catch(Exception e){
            return null;
        }
    }

    public static ArrayList<Cls_Unidad_Organizativa> obtenerTodasUnidadesOrganicas(Map<String, String> map) {
        ArrayList<Cls_Unidad_Organizativa> array_unidades = new ArrayList<Cls_Unidad_Organizativa>();
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/UnidadOrganica/2/" + map.get(Cls_Parametros.Map_FILTRO_NOMBRE) + "-1-50";
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        for (int i = 0; i < listaNodosHijo.getLength(); i++) {
            Node unNodo = listaNodosHijo.item(i);
            NodeList ndo_trabajador = unNodo.getChildNodes();
            array_unidades.add(new Cls_Unidad_Organizativa(ndo_trabajador.item(2).getFirstChild().getNodeValue(),
                    ndo_trabajador.item(7).getFirstChild().getNodeValue()));
        }
        return array_unidades;
    }

    public static Object asignarEncargado(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/9/" + map.get(Cls_Parametros.Map_DNI_ENCARGADO)
                + "-" + map.get(Cls_Parametros.Map_CODIGO_UNIDAD_ORGANICA);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String retorno = listaNodosHijo.item(0).getFirstChild().getNodeValue();
        return retorno;
    }

    private static Document gestionaWebService(String url) {
    //    System.out.println(url);
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        Document documento = null;
        try {
            DocumentBuilder builder = factory.newDocumentBuilder();
            documento = builder.parse(url);
            return documento;
        } catch (Exception spe) {
            spe.printStackTrace();
            return null;
        }
    }

    /**
     * Levanta la encargatura a una unidad orgánica
     * @param id    El identificador de la encargatura dentro del historial.
     * @return      {@true} si se levantó la encargatura correctamente,
     * {@code false} si no se levantó la encargatura, o si hubo algún error.
     */
    public static String actualizarEncargatura(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/14/" + map.get(Cls_Parametros.Map_ID_ENCARGATURA);
        Document documento = Cls_InvocaWebService.gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        String[] quitarVac = {Cls_Parametros.Map_DNI,map.get(Cls_Parametros.Map_DNI)};
        Cls_InvocaWebService.quitarVacacionesTrabajador(Cls_Funciones.generarHashMapParaSolicitud(quitarVac));
        return listaNodosHijo.item(0).getFirstChild().getNodeValue();
    }

    public static Cls_Encargatura_Permiso obtenerEncargatura(Map<String, String> map) {
        String url = IP_WEBSERVICE + "RRHH-Servicios/resources/Tablas/15/" + map.get(Cls_Parametros.Map_CODIGO_UNIDAD_ORGANICA);
        Document documento = gestionaWebService(url);
        Node nodoRaiz = documento.getFirstChild();
        NodeList listaNodosHijo = nodoRaiz.getChildNodes();
        NodeList ndo_usuario = listaNodosHijo.item(0).getChildNodes();
        Cls_Encargatura_Permiso encargatura ;
        try {
            encargatura = new Cls_Encargatura_Permiso();
            encargatura.setCargoEncargado(ndo_usuario.item(0).getFirstChild().getNodeValue());
            encargatura.setCargoPrincipal(ndo_usuario.item(1).getFirstChild().getNodeValue());
            encargatura.setCodUniOrganizativa(ndo_usuario.item(2).getFirstChild().getNodeValue());
            encargatura.setDniEncargado(ndo_usuario.item(3).getFirstChild().getNodeValue());
            encargatura.setDniPrincipal(ndo_usuario.item(4).getFirstChild().getNodeValue());
            encargatura.setFechaFin(ndo_usuario.item(5).getFirstChild().getNodeValue());
            encargatura.setFechaInicio(ndo_usuario.item(6).getFirstChild().getNodeValue());
            encargatura.setId_permiso(Long.parseLong(ndo_usuario.item(7).getFirstChild().getNodeValue()));
            encargatura.setNombreEncargado(ndo_usuario.item(8).getFirstChild().getNodeValue());
            encargatura.setNombrePrincipal(ndo_usuario.item(9).getFirstChild().getNodeValue());
            encargatura.setNombreUniOrganizativa(ndo_usuario.item(10).getFirstChild().getNodeValue());
            encargatura.setPermiso(ndo_usuario.item(11).getFirstChild().getNodeValue());
        } catch (Exception e) {
            encargatura = null;
        }
        return encargatura;
    }
}
